package com.ywd.materials.admin.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.experimental.Accessors;

import java.io.Serializable;

/**
 * 物资出入库实体类
 */
@Accessors(chain = true)
@Data
@TableName("materials_goods_in_out")
public class MaterialsGoodsInOutEntity implements Serializable {
    /**
     * 出入库ID
     */
    @Schema(description = "出入库ID")
    @TableId(type = IdType.ASSIGN_ID)
    private String id;
    /**
     * 入库仓库ID
     */
    @Schema(description = "入库仓库ID")
    private Long inWarehouseId;
    /**
     * 入库类型
     *     SYS|系统录入
     *     BUY|自行采购
     *     SOCIAL|社会捐赠
     *     PRO_PRE|省级前置
     *     PRO_ALLOC|省级调拨
     *     COU_ALLOC|国家调拨
     */
    @Schema(description = "入库类型(SYS|系统录入, BUY|自行采购, SOCIAL|社会捐赠, PRO_PRE|省级前置, PRO_ALLOC|省级调拨, COU_ALLOC|国家调拨)")
    private String inType;
    /**
     * 入库状态
     *     IN("入库中","IN"),
     *     SCAN("已扫码","SCAN"),
     *     OK("已入库","OK")
     */
    @Schema(description = "入库状态(IN|入库中, SCAN|已扫码, OK|已入库)")
    private String inStatus;
    /**
     * 出库仓库ID
     */
    @Schema(description = "出库仓库ID")
    private Long outWarehouseId;
    /**
     * 出库类型
     *     ALLOC("调拨出库","ALLOC"),
     *     PRE_ALLOC("前置出库","PRE_ALLOC"),
     *     USE_ALLOC("使用出库","USE_ALLOC")
     */
    @Schema(description = "出库类型(ALLOC|调拨出库, PRE_ALLOC|前置出库, USE_ALLOC|使用出库)")
    private String outType;
    /**
     * 出库状态
     *     PRE_OUT("待出库","PRE_OUT"),
     *     OUT("待接收","OUT"),
     *     RECEIVED("已完成","RECEIVED"),
     */
    @Schema(description = "出库状态(PRE_OUT|待出库, OUT|待接收, RECEIVED|已完成)")
    private String outStatus;
    /**
     * 发起时间
     */
    @Schema(description = "发起时间")
    private String submitTime;
    /**
     * 包含物资类型
     */
    @Schema(description = "包含物资类型")
    private String goodsTypes;
    /**
     * 说明
     */
    @Schema(description = "说明")
    private String remark;
    /**
     * 二维码URL
     */
    @Schema(description = "二维码URL")
    private String codeUrl;
    /**
     * 创建者
     */
    @Schema(description = "创建者")
    private Long creator;
    /**
     * 创建时间
     */
    @Schema(description = "创建时间")
    private String createTime;
    /**
     * 更新时间
     */
    @Schema(description = "更新时间")
    private String updateTime;
}